H2 তে Stored Procedures তৈরি

Database Tutorials - এইচ২ ডাটাবেস (H2 Database) Stored Procedures এবং Functions |
215
215

H2 ডেটাবেজে Stored Procedures তৈরি করা একটি শক্তিশালী পদ্ধতি যা ডেটাবেজের মধ্যে বিভিন্ন SQL অপারেশন একত্রিত করে একটি নির্দিষ্ট কাজ সম্পাদন করতে সাহায্য করে। Stored Procedures ডেটাবেজে সংরক্ষিত থাকে এবং একাধিক SQL অপারেশন সমন্বিতভাবে একসাথে কাজ করতে পারে। এতে কোড পুনরায় ব্যবহারযোগ্যতা বাড়ে এবং ডেটাবেজের পারফরম্যান্সও উন্নত হয়।

H2 তে Stored Procedure তৈরি করার জন্য CREATE PROCEDURE কমান্ড ব্যবহার করা হয়।


Stored Procedure কী?

Stored Procedure হল একটি প্রি-ডিফাইনড SQL কোড ব্লক, যা ডেটাবেজে সংরক্ষিত থাকে এবং একটি নির্দিষ্ট কাজ বা লজিক সম্পাদন করে। এটি ডেটাবেজের মধ্যে একাধিক SQL অপারেশন বা জটিল লজিক রক্ষা করার জন্য ব্যবহৃত হয়। একবার তৈরি হওয়ার পর, এটি সহজে কল করা যায় এবং পুনরায় ব্যবহৃত হতে পারে।

H2 ডেটাবেজে Stored Procedures তৈরি করার জন্য CREATE PROCEDURE কমান্ড ব্যবহার করা হয়, এবং তারপর আপনি সেই procedure টি CALL স্টেটমেন্ট দিয়ে কল করতে পারেন।


Stored Procedure তৈরি করা

H2 ডেটাবেজে Stored Procedure তৈরি করতে নিচের পদ্ধতি অনুসরণ করতে পারেন:

১. Stored Procedure তৈরি করা

ধরা যাক, আমরা একটি Stored Procedure তৈরি করতে চাই যা একটি টেবিল users তে নতুন ইউজার যোগ করবে।

CREATE PROCEDURE AddUser(id INT, name VARCHAR, age INT)
BEGIN
    INSERT INTO users (id, name, age) VALUES (id, name, age);
END;

এখানে:

  • AddUser: Stored Procedure এর নাম।
  • id, name, age: এই প্যারামিটারগুলি প্রক্রিয়া চলাকালীন ব্যবহারকারী থেকে ইনপুট হিসেবে নেওয়া হবে।
  • INSERT INTO users (id, name, age): এটি users টেবিলে নতুন রেকর্ড ইনসার্ট করার SQL কোড।

২. Stored Procedure কল করা

এবার এই Stored Procedure কল করতে হলে CALL কিওয়ার্ড ব্যবহার করা হবে। এর মাধ্যমে আপনি সেই procedure টি কল করতে পারবেন এবং প্যারামিটার পাস করতে পারবেন।

CALL AddUser(1, 'John Doe', 30);

এটি users টেবিলে id = 1, name = 'John Doe', এবং age = 30 সহ একটি নতুন রেকর্ড ইনসার্ট করবে।

৩. Error Handling এবং Conditionals ব্যবহার

Stored Procedure তে আপনি Error Handling, Conditions, এবং Loops ইত্যাদি যুক্ত করতে পারেন। যেমন:

CREATE PROCEDURE AddUserWithCheck(id INT, name VARCHAR, age INT)
BEGIN
    -- চেক করুন যে, ইউজারের বয়স 18 বছরের বেশি কিনা
    IF age >= 18 THEN
        INSERT INTO users (id, name, age) VALUES (id, name, age);
    ELSE
        -- যদি বয়স 18 বছরের কম হয়, ত则 একটি error ফেলে দিন
        THROW 'Age must be 18 or older.';
    END IF;
END;

এখানে:

  • IF age >= 18 THEN: যদি ইউজারের বয়স 18 বছরের বেশি হয়, তবে ইউজারকে ইনসার্ট করা হবে।
  • THROW 'Age must be 18 or older.': যদি বয়স 18 বছরের কম হয়, তবে একটি ত্রুটি (error) ফেলে দেওয়া হবে।

৪. Multiple SQL Statements

Stored Procedure-এ একাধিক SQL কুয়েরি বা স্টেটমেন্ট থাকতে পারে। উদাহরণস্বরূপ:

CREATE PROCEDURE UpdateUserAge(id INT, newAge INT)
BEGIN
    UPDATE users SET age = newAge WHERE id = id;
    SELECT * FROM users WHERE id = id;
END;

এই প্রোসিজারটি দুটি স্টেটমেন্ট একসাথে এক্সিকিউট করবে:

  1. age আপডেট করবে।
  2. সংশ্লিষ্ট users রেকর্ডটি ফেরত দেবে।

Stored Procedure-এ Parameterized Queries

আপনি Stored Procedures এ Parameterized Queries ব্যবহার করতে পারেন, যাতে SQL ইনজেকশন (SQL Injection) প্রতিরোধ করা যায়।

CREATE PROCEDURE GetUserByName(name VARCHAR)
BEGIN
    SELECT * FROM users WHERE name = name;
END;

এখানে:

  • name: এই প্যারামিটারটি SQL কুয়েরির মধ্যে নিরাপদে ইনপুট হিসেবে ব্যবহৃত হবে।

Stored Procedure ডিবাগিং এবং টেস্টিং

  • ডিবাগিং: যদি আপনার Stored Procedure তে কোনো সমস্যা হয়, তবে আপনি SHOW PROCEDURES কমান্ড ব্যবহার করে সমস্ত Stored Procedure দেখতে পারেন এবং DESCRIBE PROCEDURE ব্যবহার করে নির্দিষ্ট একটি procedure এর বিস্তারিত দেখতে পারেন।

    উদাহরণ:

    SHOW PROCEDURES;
    
  • টেস্টিং: Stored Procedure সঠিকভাবে কাজ করছে কিনা তা যাচাই করতে, আপনি CALL কমান্ড দিয়ে এটি পরীক্ষা করতে পারেন।

Stored Procedure সংক্রান্ত কিছু উন্নত কৌশল

  1. ফাংশনাল ডেটাবেজ অপারেশন: যখন আপনি একটি Stored Procedure তৈরি করেন, তখন তার মধ্যে ডেটাবেজের জন্য অনেক কাজ করতে পারেন যেমন, ইনসার্ট, আপডেট, ডিলিট এবং ডেটা রিট্রিভ করা।
  2. Transaction Management: Stored Procedures-এর মধ্যে আপনি COMMIT এবং ROLLBACK ব্যবহারের মাধ্যমে ট্রানজ্যাকশন ম্যানেজমেন্ট করতে পারেন।
CREATE PROCEDURE TransferMoney(sender INT, receiver INT, amount DECIMAL)
BEGIN
    UPDATE accounts SET balance = balance - amount WHERE id = sender;
    UPDATE accounts SET balance = balance + amount WHERE id = receiver;
    COMMIT;
END;

সারাংশ

H2 ডেটাবেজে Stored Procedures তৈরি এবং ব্যবহারের মাধ্যমে আপনি একাধিক SQL অপারেশনকে একত্রিত করতে পারেন এবং একটি নির্দিষ্ট কাজ সম্পাদন করতে পারেন। এটি ডেটাবেজ পরিচালনা সহজ এবং দ্রুত করে তোলে, কারণ একবার তৈরি হওয়া Stored Procedures বারবার ব্যবহার করা যেতে পারে। SQL কোডের পুনরায় ব্যবহারযোগ্যতা বৃদ্ধি পায় এবং এর মাধ্যমে লজিক প্রক্রিয়া ডেটাবেজের মধ্যে সংরক্ষণ করা হয়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion